Lectura-Escritura de archivos y streams

Descripcion

Como leer y escribir en archivos y usar streams para manejar los datos de distintas maneras.

Leer-Escribir archivos de Caracteres

Para leer y escribir caracteres en un archivo usamos las clases StreamWriter y StreamReader, y los métodos WriteLine() y ReadToEnd().

Código de ejemplo:

using static System.IO.Directory;
using static System.IO.Path;
using static System.Environment;

string dir = Combine(GetFolderPath(SpecialFolder.UserProfile), "PruebaArchivo");
CreateDirectory(dir);

string archivo = Combine(dir, "Caracteres.txt");


/***** ESCRITURA DE ARCHIVO *****/

StreamWriter escritor = File.CreateText(archivo);

escritor.WriteLine("Texto de ejemplo");

escritor.Close();


/***** LECTURA DE ARCHIVO *****/

StreamReader lector = File.OpenText(archivo);

String texto = lector.ReadToEnd();

Console.WriteLine(texto);

lector.Close();
Leer-Escribir archivos Binarios

Para escribir datos binarios en un fichero primero creamos un objeto FileStream y a continuación lo encapsulamos con un stream BinaryWriter, despues solo tenemos que usar el método Write para escribir los datos al archivo

El método Write se encarga de escribir los datos según el tipo de dato que le pasemos, si por ejemplo le pasamos un int escribirá 4 bytes, si le pasamos un long 8 bytes...etc

Código de ejemplo:

using static System.IO.Directory;
using static System.IO.Path;
using static System.Environment;

string dir = Combine(GetFolderPath(SpecialFolder.UserProfile), "PruebaArchivo");
CreateDirectory(dir);

string archivo = Combine(dir, "Binario.dat");


/***** ESCRITURA DE ARCHIVO *****/

FileStream escritor = File.Create(archivo);

BinaryWriter writer= new BinaryWriter(escritor);
writer.Write(5);

writer.Close();
escritor.Close();


/***** LECTURA DE ARCHIVO *****/

FileStream lector = new FileStream(archivo, FileMode.Open, FileAccess.Read);

byte[] buffer = new byte[4];
lector.Read(buffer, 0, 4);

int numero = (int)buffer[0];

Console.WriteLine(numero);

lector.Close();
Utilizar using

En vez de cerrar los recursos de manera manual usando close podemos utilizar la sentencia using para que el propio lenguaje lo haga de manera automática.

Este código:

StreamWriter escritor = File.CreateText(archivo);

escritor.WriteLine("Texto de ejemplo");

escritor.Close();

Pasaría a quedar así:

using (StreamWriter escritor = File.CreateText(archivo))
{
    escritor.WriteLine("Texto de ejemplo");
}
Tags

C# | Archivos | Streams